Skip to content

Don't install R packages in the Jenkins image - #602

Merged
jcheng5 merged 1 commit into
masterfrom
jcheng5/no-r-on-jenkins
Aug 29, 2026
Merged

jcheng5 merged 1 commit into
masterfrom
jcheng5/no-r-on-jenkins

Conversation

@jcheng5

@jcheng5 jcheng5 commented Aug 29, 2026

Copy link
Copy Markdown
Member

Fixes the master Jenkins build, broken by #599.

#599 added install.packages("shiny") to
docker/jenkins/Dockerfile.ubuntu-20.04 so the real-R tier wouldn't skip
itself there. On focal that install compiles from source — the PPM binary repo
only serves binaries when the client sends a matching HTTPUserAgent, which a
bare Rscript -e install.packages(...) doesn't — and building
shiny -> bslib -> sass -> fs then needs libuv, which the image doesn't have.

The fix isn't to add libuv and a user-agent dance, because the change was
unnecessary in the first place
: Jenkinsfile:108 runs
mocha test test/integration and never npm run test:r. That image was being
provisioned for a tier it does not execute. The real-R tier runs on GitHub
Actions, which has R via r-lib/actions/setup-r and is green.

Also records in memory-bank/testingGuide.md that the R tier is GHA-only and
why, so it doesn't get added back — plus a note that
Jenkinsfile.internal:138 still runs mocha test only, so the internal build
skips the integration tier. Left alone deliberately, given Jenkins is expected
to be retired after this round of refactors.

Verified: npm test 310 passing, npm run test:r 8 passing, unaffected — this
only touches the Docker image and a doc.

🤖 Generated with Claude Code

The shiny install added to docker/jenkins/Dockerfile.ubuntu-20.04 broke the
image build. On focal the install falls back to compiling from source -- the
PPM binary repo only serves binaries when the client sends a matching
HTTPUserAgent, which a bare `Rscript -e install.packages(...)` does not -- and
building `shiny -> bslib -> sass -> fs` then needs libuv, which the image
doesn't have.

Rather than add libuv and a user-agent dance, drop it: Jenkins runs
`mocha test test/integration` and never `npm run test:r`, so that image was
being provisioned for a tier it does not execute. The real-R tier already runs
on GitHub Actions, which is where it belongs, and Jenkins is expected to be
retired after the current round of refactors.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jcheng5
jcheng5 merged commit 727ae00 into master Aug 29, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant